]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
search: Unset the results for the current provider if the new search failed
authorMarco Trevisan (Treviño) <mail@3v1n0.net>
Tue, 17 Feb 2026 14:02:56 +0000 (15:02 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Sat, 14 Mar 2026 17:35:17 +0000 (18:35 +0100)
In case the provider search or subsearch failed, the old results are
preserved, while they should be reset or we may show invalid data

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4080>
(cherry picked from commit 929c8b821d3b5f5e787d8f1349134ab3e1a4a46a)

js/ui/search.js

index 1139cbfde5181992a2e34f3949ed170daa131391..8d9432094e99cbb578711b5276d6d3e9fa39ac58 100644 (file)
@@ -693,20 +693,22 @@ export const SearchResultsView = GObject.registerClass({
     async _doProviderSearch(provider, previousResults) {
         provider.searchInProgress = true;
 
-        let results;
-        if (this._isSubSearch && previousResults) {
-            results = await provider.getSubsearchResultSet(
-                previousResults,
-                this._terms,
-                this._cancellable);
-        } else {
-            results = await provider.getInitialResultSet(
-                this._terms,
-                this._cancellable);
+        let results = [];
+        try {
+            if (this._isSubSearch && previousResults) {
+                results = await provider.getSubsearchResultSet(
+                    previousResults,
+                    this._terms,
+                    this._cancellable);
+            } else {
+                results = await provider.getInitialResultSet(
+                    this._terms,
+                    this._cancellable);
+            }
+        } finally {
+            this._results[provider.id] = results;
+            this._updateResults(provider, results);
         }
-
-        this._results[provider.id] = results;
-        this._updateResults(provider, results);
     }
 
     _doSearch() {